package com.darrenchan.netease03

class Student22 private[this](val id: Int, val name: String) {
  /**
    * 定义辅助构造器的几个要点：
    *   1.使用def定义
    *   2.方法的名称必须是this
    *   3.辅助构造器中的参数列表，一般来说，都要包括主构造器中的参数列表
    *   4.辅助构造器的{}中的第一行代码，都要以其他的构造器（其他的辅助构造器或者主构造器）开头
    *   5.辅助构造器中不能有var或者val修饰
    */
  def this(id: Int, name: String, age: Int) = {
    //调用主构造器
    this(id, name)
  }

  def this(id: Int, name: String, age: Int, salary: Double) = {
    //调用辅助构造器
    this(id, name, age)
  }
}

object Student22 {
  def main(args: Array[String]): Unit = {
    //val stu = new Student22(20124849, "陈驰")直接这么写是报错的
    val stu = new Student22(20124849, "陈驰", 25, 10000)
    println(stu.id, stu.name)
//    println(stu.age, stu.salary)//都访问不到
  }
}
